﻿using System;
using System.Threading;
using System.Windows.Forms;
using FBWMS.Properties;

namespace FBWMS
{
    public partial class F_COM_TenKey : Form
    {
        ////////////////////////////////////////////////////////////////////////////
        //
        //初期処理
        //
        ////////////////////////////////////////////////////////////////////////////
        public F_COM_TenKey(bool isPassWord)
        {
            try
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcStart, Resources.InitStart, "F_COM_TenKey");

                //初期処理
                InitializeComponent();

                if (isPassWord)
                {
                    this.txt_Input.PasswordChar = '*';
                }

                //ToolTipの設定
                G_CommonDefine.G_tt_ToolTip.RemoveAll();
                G_CommonDefine.G_tt_ToolTip.SetToolTip(this.btn_Set, "F5");
                G_CommonDefine.G_tt_ToolTip.SetToolTip(this.btn_Clear, "F11");

                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcEnd, Resources.InitEnd, "F_COM_TenKey");
            }
            catch (Exception err)
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.Error, Resources.InitError + err.Message, "F_COM_TenKey");

                //エラーメッセージ表示
                string str_Caption = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_Error);
                MessageBox.Show(Resources.FCOMTenKey + err.Message, str_Caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        
        #region イベントハンドラ ***********************************************************

        ////////////////////////////////////////////////////////////////////////////
        //0釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_No0_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }//{ this.P_InputNo(0); }
        ////////////////////////////////////////////////////////////////////////////
        //1釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_No1_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }//{ this.P_InputNo(1); }
        ////////////////////////////////////////////////////////////////////////////
        //2釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_No2_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }//{ this.P_InputNo(2); }
        ////////////////////////////////////////////////////////////////////////////
        //3釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_No3_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }//{ this.P_InputNo(3); }
        ////////////////////////////////////////////////////////////////////////////
        //4釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_No4_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }//{ this.P_InputNo(4); }
        ////////////////////////////////////////////////////////////////////////////
        //5釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_No5_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }//{ this.P_InputNo(5); }
        ////////////////////////////////////////////////////////////////////////////
        //6釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_No6_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }//{ this.P_InputNo(6); }
        ////////////////////////////////////////////////////////////////////////////
        //7釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_No7_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }//{ this.P_InputNo(7); }
        ////////////////////////////////////////////////////////////////////////////
        //8釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_No8_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }//{ this.P_InputNo(8); }
        ////////////////////////////////////////////////////////////////////////////
        //9釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_No9_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }//{ this.P_InputNo(9); }
        ////////////////////////////////////////////////////////////////////////////
        //-釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_Hyphen_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //.釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_Period_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }

        ////////////////////////////////////////////////////////////////////////////
        //A釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_A_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //B釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_B_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //C釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_C_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //D釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_D_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //E釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_E_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //F釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_F_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //G釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_G_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //H釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_H_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //I釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_I_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //J釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_J_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //K釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_K_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //L釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_L_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //M釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_M_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //N釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_N_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //O釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_O_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //P釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_P_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //Q釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_Q_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //R釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_R_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //S釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_S_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //T釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_T_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //U釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_U_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //V釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_V_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //W釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_W_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //X釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_X_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //Y釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_Y_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }
        ////////////////////////////////////////////////////////////////////////////
        //Z釦クリック時処理
        ////////////////////////////////////////////////////////////////////////////
        private void btn_Z_Click(object sender, EventArgs e) { this.P_InputAlphabet(); }

        ////////////////////////////////////////////////////////////////////////////
        //
        //文字変換釦クリック時処理
        //
        ////////////////////////////////////////////////////////////////////////////
        private void btn_Change_Click(object sender, EventArgs e)
        {
            try
            {
                //if (this.btn_Change.Text.Equals("大文字"))
                //{
                //    foreach (Control c in this.pnl_Alphabet.Controls)
                //    {
                //        c.Text = c.Text.ToUpper();
                //    }

                //    this.btn_Change.Text = "小文字";
                //}
                //else
                //{
                //    foreach (Control c in this.pnl_Alphabet.Controls)
                //    {
                //        c.Text = c.Text.ToLower();
                //    }

                //    this.btn_Change.Text = "大文字";
                //}
                string str_Language = Thread.CurrentThread.CurrentUICulture.ToString();
               
                if (this.btn_A.Text.Equals("a"))
                {
                    foreach (Control c in this.pnl_Alphabet.Controls)
                    {
                        c.Text = c.Text.ToUpper();
                    }
                    switch (str_Language)
                    {
                        case "en":
                            this.btn_Change.Text = "Lower";
                            break;
                        case "zh-CHS":
                            this.btn_Change.Text = "小写";
                            break;
                        default:
                            this.btn_Change.Text = "Lowercase";
                            break;

                    }
                }
                else
                {
                    foreach (Control c in this.pnl_Alphabet.Controls)
                    {
                        c.Text = c.Text.ToLower();
                    }
                    switch (str_Language)
                    {
                        case "en":
                            this.btn_Change.Text = "Caps";
                            break;
                        case "zh-CHS":
                            this.btn_Change.Text = "大写";
                            break;
                        default:
                            this.btn_Change.Text = "Caps";
                            break;

                    }
                }
            }
            catch (Exception err)
            {
                string str_Caption = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_Error);
                MessageBox.Show("btn_Change_Click" + err.Message, str_Caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        ////////////////////////////////////////////////////////////////////////////
        //
        //クリアボタンクリック時処理
        //
        ////////////////////////////////////////////////////////////////////////////
        private void btn_Clear_Click(object sender, EventArgs e)
        {
            try
            {
                this.txt_Input.Text = string.Empty;

                this.txt_Input.Focus();
            }
            catch (Exception err)
            {
                string str_Caption = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_Error);
                MessageBox.Show("btn_Clear_Click" + err.Message,str_Caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        ////////////////////////////////////////////////////////////////////////////
        //
        //セットボタンクリック時処理
        //
        ////////////////////////////////////////////////////////////////////////////
        private void btn_Set_Click(object sender, EventArgs e)
        {
            try
            {
                G_CommonDefine.G_str_Search_CD = this.txt_Input.Text;

                this.Close();
            }
            catch (Exception err)
            {
                string str_Caption = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_Error);
                MessageBox.Show("btn_Set_Click" + err.Message, str_Caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        ////////////////////////////////////////////////////////////////////////////
        //
        //一字消すボタンクリック時処理
        //
        ////////////////////////////////////////////////////////////////////////////
        private void btn_Delete_Click(object sender, EventArgs e)
        {
            if (!G_CommonClassChk.G_Chk_Null(this.txt_Input.Text))
            {
                return;
            }

            this.txt_Input.Text = this.txt_Input.Text.Remove(this.txt_Input.Text.Length - 1);
        }

        #endregion *************************************************************************

        #region プライベート関数 ***********************************************************
                
        /// <summary>
        /// No入力制御関数
        /// </summary>
        private void P_InputNo(int int_No)
        {
            try
            {
                this.txt_Input.Text += int_No.ToString();
            }
            catch (Exception err)
            {
                string str_Caption = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_Error);
                MessageBox.Show("P_InputNo" + err.Message,str_Caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        
        /// <summary>
        /// Alphabet入力制御関数
        /// </summary>
        private void P_InputAlphabet()
        {
            try
            {
                Control c = this.ActiveControl;
                string strText = c.Text.Substring(0, 1);
                this.txt_Input.Text += strText;
            }
            catch (Exception err)
            {
                string str_Caption = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_Error);
                MessageBox.Show("P_InputAlphabet" + err.Message, str_Caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }            
        }

        #endregion *************************************************************************

        #region フォーム共通処理 ***********************************************************

        ////////////////////////////////////////////////////////////////////////////
        //
        //ショートカットキー処理
        //
        ////////////////////////////////////////////////////////////////////////////
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if (this.cc_ShortcutKeyHelper1.PerformClickByKeys(keyData))
            {
                return true;
            }

            return base.ProcessCmdKey(ref msg, keyData);
        }

        ////////////////////////////////////////////////////////////////////////////
        //フォームKeyDown時処理
        //(エンターを押した際に次のコントロールに移動する。)
        //(フォームの『KeyPreview』を『true』にすること)
        ////////////////////////////////////////////////////////////////////////////
        private void F_COM_TenKey_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                if (!e.Control)
                {
                    this.SelectNextControl(this.ActiveControl, !e.Shift, true, true, true);
                }
            }
        }               

        #endregion *************************************************************************        

        private void btn_Fn_Click(object sender, EventArgs e)
        {
            try
            {
                if (btn_No0.Text.Equals("0"))
                {
                    btn_No0.Text = ")";
                    btn_No1.Text = "!";
                    btn_No2.Text = "@";
                    btn_No3.Text = "#";
                    btn_No4.Text = "$";
                    btn_No5.Text = "%";
                    btn_No6.Text = "^";
                    btn_No7.Text = "&&";
                    btn_No8.Text = "*";
                    btn_No9.Text = "(";

                    
                    btn_Fn.Text = "△";
                }
                else
                {
                    btn_No0.Text = "0";
                    btn_No1.Text = "1";
                    btn_No2.Text = "2";
                    btn_No3.Text = "3";
                    btn_No4.Text = "4";
                    btn_No5.Text = "5";
                    btn_No6.Text = "6";
                    btn_No7.Text = "7";
                    btn_No8.Text = "8";
                    btn_No9.Text = "9";


                    btn_Fn.Text = "▲";
                }
            }
            catch (Exception err)
            {
                string str_Caption = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_Error);
                MessageBox.Show("btn_Change_Click" + err.Message, str_Caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    }
}